/*
 * ZPLAjustesPadroes.java
 *
 * Created on 15 de Janeiro de 2007, 21:40
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 *Classe responsavel pelos ajustes padroes como offset, quantidade de etiqueta.
 */

package br.com.frigofish.zpl;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 *
 * @author Tomassoni
 */
public class ZPLAjustesPadroes {
    private static String velocidade;
    private static String impressora;
    private static int offsetX;
    private static int offsetY;
    private static String qtdeEtiqueta;
    private String rmt;
    
    /** Creates a new instance of ZPLAjustesPadroes */
    public ZPLAjustesPadroes() {
    }
    
    
    public String ajustaOffSet(String zplOriginal){
        String zplAjustado = zplOriginal;
        String zplMsdTmp = zplAjustado.replace('^', '<');
        String retorno = null;
        Pattern patern = Pattern.compile("<FO(.*?)<");
        Matcher matcher = patern.matcher(zplMsdTmp);
        
        while (matcher.find()) {
            String zplSemCaracterEsp = matcher.group().replace("<","");
            String subFO = zplSemCaracterEsp.substring(2, zplSemCaracterEsp.length());
            String[] subSF0 =  subFO.split(",");
            for (int i = 0; i <  subSF0.length; ++i) {
                int ajuste =  Integer.valueOf( subSF0[i]);
                if(i == 1 )
                    subSF0[i] = String.valueOf(ajuste + offsetY);
                else
                    subSF0[i] = String.valueOf(ajuste + offsetX);
                rmt =  subSF0[0] + "," + subSF0[1];
                
            }
            zplAjustado = zplAjustado.replaceFirst(subFO.toString(),rmt.toString());
            
        }
        
        System.gc();
        return zplAjustado;
    }
    
    public String propCabecario(){
       // String propCabecario =  "^XA^MCY^XZ^XA^FWN^CFD,24^PW1228^LH0,0^CI0^PR"+velocidade+"^MNY^" +
       // String propCabecario =  "^XA^MCY^XZ^XA^FWN^CFD,24^PW1228^LH0,0^CI0^PR3^MNY^" + "MTT^MMT^MD0^JJ0,0^PON^PMN^LRN^LT0^XZ^XA^MCY^XZ^XA^DFR:TEMP_FMT.ZPL^LRN" ;
        String propCabecario = "^XA^MCY^XZ^XA^FWN^CFD,24^LH0,0^CI0^PR2^MNY^MTT^MMT^MD0^PON^PMN^LRN^XZ^XA^MCY^XZ^XA^DFR:TEMP_FMT.ZPL^LRN";
        return propCabecario;
    }
    
    public String propFinalPQx(){
        String propFinal =  "^XA^XFR:TEMP_FMT.ZPL^PQ"+getQtdeEtiqueta()+",0,1,Y^XZ" +
                "^XA^IDR:TEMP_FMT.ZPL^XZ";
        return propFinal;
    }
    
    public String propFinalPQ1(){
        String propFinal =  "^XA^XFR:TEMP_FMT.ZPL^PQ1,0,1,Y^XZ" +
                "^XA^IDR:TEMP_FMT.ZPL^XZ";
        return propFinal;
    }
    
    public String getVelocidade() {
        return velocidade;
    }
    
    public void setVelocidade(String velocidade) {
        this.velocidade = velocidade;
    }
    
    public static int getOffsetX() {
        return offsetX;
    }
    
    public static void setOffsetX(int aOffsetX) {
        offsetX = aOffsetX;
    }
    
    public static int getOffsetY() {
        return offsetY;
    }
    
    public static void setOffsetY(int aOffsetY) {
        offsetY = aOffsetY;
    }
    
    public static String getImpressora() {
        return impressora;
    }
    
    public static void setImpressora(String aImpressora) {
        impressora = aImpressora;
    }
    
    public static String getQtdeEtiqueta() {
        return qtdeEtiqueta;
    }
    
    public static void setQtdeEtiqueta(String aQtdeEtiqueta) {
        qtdeEtiqueta = aQtdeEtiqueta;
    }
    
}
